package pl.prac06;

import antlr.*;
import java.io.*;
import org.antlr.*;

import pl.prac06.*;

public class App 
{
    public static void main( String[] args )
    {
    	boolean error=false;
    	    try {
    	    	System.out.println("Fichero analizado por analizador inicial");
    	        FileInputStream fis = new FileInputStream("./ficheros/ej01.txt"); 
    	        Analex analex = new Analex(fis);
    	        //System.out.println(salida);
    	        Anasint anasint = new Anasint(analex); 
    	        anasint.entrada(); 
    	        BufferedReader fichero = new BufferedReader(new FileReader("./ficheros/ej01.txt"));
    	        while (true){
    	        	if (!fichero.ready())
                        break;
                    System.out.println(fichero.readLine());
    	        }
    	      }
    	      catch(ANTLRException ae) {
    	         System.err.println(ae.getMessage());
    	         System.out.println("Error");
    	         error = true;
    	      }
    	      catch(IOException ioe) {
    	         System.err.println(ioe.getMessage());
    	      }
    	      if (error == false)
    	    	  System.out.println("Fichero OK");
    	      else {
    	    	  System.out.println("Fichero No OK");
    	    	  error=false;
    	      }
    	      try {
    	      	System.out.println("Fichero analizado por mi analizador de C");
    	        FileInputStream fis = new FileInputStream("./ficheros/ej02.txt"); 
    	        AnalexC analex = new AnalexC(fis);
    	        /*FileInputStream fis2 = new FileInputStream("./ficheros/ej04.txt");
    	        AnalexC analex2 = new AnalexC(fis2);
    	        Token token2 = analex2.nextToken();
    	        int linea=1;
    	        while(token2.getType() != Token.EOF_TYPE) {
    	          System.out.print(token2);
    	          token2 = analex2.nextToken();
    	          if (token2.getLine() > linea) { 
    	         	  linea=token2.getLine();
    	          	  System.out.println("");    
    	          }
    	        }
    	        */
    	        //System.out.println(salida);
    	        AnasintC anasint = new AnasintC(analex); 
    	        anasint.entrada(); 
    	        BufferedReader fichero = new BufferedReader(new FileReader("./ficheros/ej02.txt"));
      	        while (true){
      	        if (!fichero.ready())
                   break;
                System.out.println(fichero.readLine());
      	        } 
    	      }
    	        catch(ANTLRException ae) {
    	           System.err.println(ae.getMessage());
    	           error=true;
    	        }
    	        catch(IOException ioe) {
    	           System.err.println(ioe.getMessage());
    	        }
    	        if (!error)
    	      	  System.out.println("Fichero OK");
    	        else {
    	      	  System.out.println("Fichero No OK");
    	      	  error=false;
    	        }
    	        try {
        	    	System.out.println("Fichero analizado por analizador XML");
        	        FileInputStream fis = new FileInputStream("./ficheros/ej03.txt"); 
        	        AnalexXML analex = new AnalexXML(fis);
        	        //System.out.println(salida);
        	        AnasintXML anasint = new AnasintXML(analex); 
        	        anasint.entrada(); 
        	        BufferedReader fichero = new BufferedReader(new FileReader("./ficheros/ej03.txt"));
        	        while (true){
        	        	if (!fichero.ready())
                            break;
                        System.out.println(fichero.readLine());
        	        }
        	      }
        	      catch(ANTLRException ae) {
        	         System.err.println(ae.getMessage());
        	         System.out.println("Error");
        	         error = true;
        	      }
        	      catch(IOException ioe) {
        	         System.err.println(ioe.getMessage());
        	      }
        	      if (error == false)
        	    	  System.out.println("Fichero OK");
        	      else {
        	    	  System.out.println("Fichero No OK");
        	    	  error=false;
        	      }
        	      try {
          	    	System.out.println("Fichero analizado por analizador GDL");
          	        FileInputStream fis = new FileInputStream("./ficheros/ej04.txt"); 
          	        AnalexGDL analex = new AnalexGDL(fis);
          	        //System.out.println(salida);
          	        AnasintGDL anasint = new AnasintGDL(analex); 
          	        anasint.entrada(); 
          	        BufferedReader fichero = new BufferedReader(new FileReader("./ficheros/ej04.txt"));
          	        while (true){
          	        	if (!fichero.ready())
                              break;
                          System.out.println(fichero.readLine());
          	        }
          	      }
          	      catch(ANTLRException ae) {
          	         System.err.println(ae.getMessage());
          	         System.out.println("Error");
          	         error = true;
          	      }
          	      catch(IOException ioe) {
          	         System.err.println(ioe.getMessage());
          	      }
          	      if (error == false)
          	    	  System.out.println("Fichero OK");
          	      else {
          	    	  System.out.println("Fichero No OK");
          	    	  error=false;
          	      }
        	      try {
            	    	System.out.println("Fichero analizado por analizador ANTLR");
            	        FileInputStream fis = new FileInputStream("./ficheros/ej05.txt"); 
            	        AnalexANTLR analex = new AnalexANTLR(fis);
            	        //System.out.println(salida);
            	        AnasintANTLR anasint = new AnasintANTLR(analex); 
            	        anasint.entrada(); 
            	        BufferedReader fichero = new BufferedReader(new FileReader("./ficheros/ej05.txt"));
            	        while (true){
            	        	if (!fichero.ready())
                                break;
                            System.out.println(fichero.readLine());
            	        }
            	      }
            	      catch(ANTLRException ae) {
            	         System.err.println(ae.getMessage());
            	         System.out.println("Error");
            	         error = true;
            	      }
            	      catch(IOException ioe) {
            	         System.err.println(ioe.getMessage());
            	      }
            	      if (error == false)
            	    	  System.out.println("Fichero OK");
            	      else {
            	    	  System.out.println("Fichero No OK");
            	    	  error=false;
            	      }
    	   }
}
